package com.ea.modular.dao.sys;

import java.util.List;
import java.util.Set;

import org.apache.ibatis.annotations.Param;

import com.ea.common.node.MenuNode;
import com.ea.common.node.ZTreeNode;
import com.ea.common.parent.dao.BaseDao;
import com.ea.modular.model.sys.Menu;

/**
 * 菜单接口
 * @author jun
 *
 */
public interface MenuDao extends BaseDao<Menu>{
	
	
	/**
	 * 根据ID查询所该角色应该有的菜单
	 * @param roleIds
	 * @return
	 */
	List<MenuNode> getMenusByRoleIds(@Param("list")List<String> roleIds);

	/**
     * 菜单内部使用获取ztree的节点列表
     *
     * @return
     */
    List<ZTreeNode> tree();
    
    
    /**
     * 根据角色ID获取授权的菜单
     *
     * @return
     */
    List<ZTreeNode> menuTreeListByMenuIds(@Param("menuIds")List<String> menuIds);
    
    
    /**
     * 根据角色ID获取所有菜单的ID
     * @param roleId
     * @return
     */
    List<String> getMenuIds(@Param("roleId") String roleId);
    
    
    /**
	 * 根据用户ID查询所该角色应该有的菜单权限列表
	 * @param roleIds
	 * @return
	 */
    Set<String> getPermissionByRoleIds(@Param("list")List<String> roleIds);

    

}
